package com.kotlin.android.app

import android.app.Activity
import android.content.Intent
import android.os.Handler
import android.os.Looper
import com.kotlin.android.app.data.common.FlashAd
import com.kotlin.android.app.ui.splash.SplashActivity

/**
 * 创建者: zl
 * 创建时间: 2022/9/29 3:26 下午
 * 描述:启动页跳转逻辑封装
 */

/**
 * 向导页结束后进入闪屏广告页
 */
fun Activity.handFlashAD() {
//    openNext()
    openFlashAD(FlashAd.Objects(imgUrl = "https://mmbiz.qpic.cn/mmbiz_png/sOxAruHOzKqM5JyllriaWqDOkX6XWx9f7HnmwiaWHnFCZXNswN8xGwUo4p0of3icbswVhzngchqmz7EticTmByxwEA/640?wx_fmt=png&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1"))
}


fun Activity.openNext() {
    openMainTab()
}

/**
 * 打开闪屏广告
 */
private fun Activity.openFlashAD(flashAd: FlashAd.Objects?) {
    // 直接访问跳转。（不需要路由，因为app冷启动路由组件初始化耗时，会出现页面加载等待的问题）
    Intent(this, SplashActivity::class.java).apply {
        putExtra(KEY_FLASH_AD, flashAd)
    }.also {
        startActivity(it)
    }

    finishDelay()
}


/**
 * 打开主页
 */
private fun Activity.openMainTab() {
    // openHome() 直接访问跳转。（不需要路由，因为app冷启动路由组件初始化耗时，会出现页面加载等待的问题）
    startActivity(Intent(this, MainTabActivity::class.java))
    finishDelay()
}

/**
 * 启动页延伸销毁，保持页面衔接。
 */
private fun Activity.finishDelay() {
    Looper.getMainLooper()?.apply {
        Handler(this).postDelayed({
            finish()
        }, 300)
    }
}